3b39bad6cee5880eda292cf769e5233ef3b41631,src/org/jgroups/blocks/GroupRequest.java,GroupRequest,receiveResponse,#Object#Address#,210

Before Change


        lock.lock();
        try {
            Rsp rsp=requests.get(sender);
            if(rsp == null)
                return;
            if(!rsp.wasReceived()) {
                boolean responseReceived =(rsp_filter == null) || rsp_filter.isAcceptable(response_value, sender);
                rsp.setValue(response_value);
                rsp.setReceived(responseReceived);
                if(log.isTraceEnabled())
                    log.trace(new StringBuilder("received response for request ").append(req_id)
                            .append(", sender=").append(sender).append(", val=").append(response_value));
            }
            // done=rsp_filter != null && !rsp_filter.needMoreResponses();
            done=rsp_filter == null? responsesComplete() : !rsp_filter.needMoreResponses();
            if(done && corr != null)
                corr.done(req_id);
        }
        finally {
            completed.signalAll(); // wakes up execute()
            lock.unlock();
        }
        checkCompletion(this);
    }

After Change


        if(done)
            return;
        Rsp rsp=requests.get(sender);
        if(rsp == null)
            return;

        boolean responseReceived=false;
        if(!rsp.wasReceived()) {
            if((responseReceived=(rsp_filter == null) || rsp_filter.isAcceptable(response_value, sender)))
                rsp.setValue(response_value);
            rsp.setReceived(responseReceived);
        }

        lock.lock();
        try {
            if(responseReceived)
                num_received++;
            done=rsp_filter == null? responsesComplete() : !rsp_filter.needMoreResponses();
            if(responseReceived || done)
                completed.signalAll(); // wakes up execute()
            if(done && corr != null)
                corr.done(req_id);
        }
        finally {
            lock.unlock();
        }
        if(responseReceived || done)
            checkCompletion(this);
    }